MySQL 问题排查流程

常见问题解决

如何确定导致问题的原因

硬件问题

当您遇到问题时,您应该做的第一件事是找出导致它的设备或设备:
如果您有以下症状之一,那么它可能是硬件问题(如内存,主板,CPU或硬盘)或内核问题:

  1. 机器无法应答远程机器的ping。

  2. MySQL无关的其他程序有异常.

  3. 您的系统意外重启。

排查硬件步骤

  1. 在这种情况下,您应该首先检查所有电缆并运行一些诊断工具来检查您的硬件! 您还应该检查操作系统是否有任何可能解决问题的修补程序,更新或Service Pack。 还要检查所有库(例如 glibc )是否是最新的。

  2. 使用具有ECC内存的机器来提前发现内存问题。

  3. 请检查您的系统日志文件( /var/log/messages 或类似 文件 ),以了解您的问题。 如果您认为问题出在MySQL中,您还应该检查MySQL的日志文件。

排查数据库和操作系统

  1. 如果您认为自己没有硬件问题,则应该尝试找出导致问题的程序。 尝试使用 top , ps ,任务管理器或某些类似的程序来检查哪个程序正在占用所有CPU或正在锁定机器。

  2. 使用 top,df 或类似程序检查是否内存不足,磁盘空间,文件描述符或其他一些关键资源。

  3. 如果问题是一些失控的过程,你可以尝试杀死它。 如果它无法终止,则操作系统中可能存在BUG。

  4. 如果在检查了MySQL服务器或MySQL客户端导致问题之后,是时候为我们的运维团队创建错误报告了。 在错误报告中,尝试详细描述系统的行为方式以及您的想法。 您还可以说明为什么您认为MySQL导致了问题。

  5. 尝试详细描述哪个程序不起作用以及您看到的所有表面现象和日志。

如果MySQL 相关程序失败,需要收集以下信息:

  1. 有问题的程序是否出现了段错误(是否core)?

  2. 程序是否占用了所有可用的CPU? 检查top 。

  3. 如果 mysqld 服务器导致问题,你可以使用 mysqladmin -u root ping mysqladmin -u root processlist 获得任何响应 吗?

  4. 当您尝试连接到MySQL服务器时,客户端程序报什么错误?